perm filename UNIT.TEX[RDG,DBL]1 blob sn#529709 filedate 1980-08-22 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	\input SCORE.TEX[RLL,RDG]
C00007 00003	\HeadA ⊂Appendix C: Special Units⊃
C00025 ENDMK
C⊗;
\input SCORE.TEX[RLL,RDG]
% \input <CSD.GREINER>SCORE.TEX
\def\index{F} % "global variables"
\output{\baselineskip 0pt\lineskip0pt	% beginning of output routine, resets skips
	\if T\index{\indexoutput}
	\else{
	\hbox to size{\ifeven0{\hfill\it \count0}\else{\it \count0\hfill}}
	\baselineskip 20pt\page
	\baselineskip 20pt{\ctrline{\tenpoint\bf --- RLL DRAFT ---}}\advcount0}}
\setcount0 31  % so the pages will be numbered correctly
\def\yspace{\penalty-50\vskip 2pt plus 2pt minus 2pt}
\def\EPSILON{$\in$}
\def\EQUAL{$=$}
\def\Sub (#1){$↓#1$}
\def\RLL{{\bf RLL}}
\def\Unit (#1){{\bf #1}}
\def\Slot (#1){{\it #1}}
\def\UnitSlot (#1:#2){{\Unit (#1)}:{\Slot (#2)}}
\def\LispFn (#1){{\it #1}}
\def\hmode{\ \unskip}
\save1\hbox{\rm Direct Examples:\ }	 % The size of "Direct Examples: "
\save2\hbox{\rm \hskip 10pt Direct Examples:\ } % The size of "    Direct Examples: "
\save2\hbox{\hbox to size{} \hskip -1wd2}% Page width, minus ↑
\save3\hbox{\rm HighLevelDefn:\ }
\save4\hbox{\rm \hskip 10pt HighLevelDefn:\ }
\save4\hbox{\hbox to size{} \hskip -1wd4}
\save7\hbox{\eightpoint \Slot (OrderedPrototypes) \hfil}
\let\holdpar=\par
\def\ClassEntry <#1 #2 #3>
	{{ % \def\par{\holdpar\noindent\hangindent 15pt after 1}
	\yyskip\noindent\hangindent 15pt after 1
	{{\Heavy _#1_} ({\it #2}) - #3 }}}
		% this is the basic description (raw text)
\def\CFact #1@#2>{\par\yspace
	\hbox{\valign{##\vfill\cr
		\hbox to 10pt{\hfil}\cr
		\hbox to 1wd1{#1: \hfil}\cr
		\hbox par 1wd2{#2}\cr}}}
\def\SlotEntry <#1 #2 #3>
	{{ % \def\par{\holdpar\noindent\hangindent 15pt}
	\yskip\noindent\hangindent 15pt after 1
	{{\it #1} -- [#2] #3 \par}}}
		 % this is the basic description (raw text)
\def\SFact #1@#2>{\par\yspace
	\hbox{\valign{##\vfill\cr
		\hbox to 10pt{\hfil}\cr
		\hbox to 1wd3{#1: \hfil}\cr
		\hbox par 1wd4{#2}\cr}}}
\def\SlotsFor #1{\par\ctrline{\it 
	The following slots are defined for all ``{\rm #1}''s:}}
\def\indexoutput{
   \if L\lr{\gdef\lr{R}\save0\page}
	\else{ % Not the left-hand column
	\gdef\lr{L}\save3\hbox to size % Knuth had 348pt here
		{\box0\hfill\page}
	\save9\hbox{\it \count0}
	\hbox to size{\ifeven0{\hskip 1wd9\hfill{\tenpoint\bf C.4: INDEX}\hfill\copy9}
			\else{\copy9\hfill{\tenpoint C.4: INDEX}\hfill\hskip 1wd9}}
	\baselineskip 40pt\moveright 10pt\box3
	\baselineskip 20pt{\ctrline{\tenpoint\bf --- RLL DRAFT ---}}\advcount0}}
\def\StartIndex{\par\vfill\eject 
	\gdef\index{T} \gdef\lr{L}
	\jpar1000 \ragged 1000 \chpar2←1000}
\def\lead{\leaders\hjust to 10pt{\hfill .\hfill}\hfill}
\def\IS <#1 #2>{\par\hbox to 150pt{\Slot (#1)\lead #2}}
\def\IU <#1 #2>{\par\hbox to 150pt{\Unit (#1) (Class) \lead #2}}
\HeadA ⊂Appendix C: Special Units⊃

Many \RLL\  units are directly used by one or more of the \RLL\  functions
listed below.
These special ones are enumerated below, following a depth first traversal
of the \RLL\  Knowledge Base. Diagram {$\# 1$} portrays a skeleton of this hierarchy,
showing the subset relations joining these various classes.

\HeadB ⊂C.1: Naming Conventions⊃

$$\vcenter{\halign{\lft{\Unit (#) }⊗- \lft{#}\cr
Any***⊗refers to the class of all {\it ***} objects [e.g. \Unit (AnySlot) refers to
{\it slots}]\cr
Typical***⊗refers to the abstract object which typifies members of \Unit (Any***)\cr
F***⊗refers to a format [e.g. \Unit (FSingleton)]\cr
I***⊗refers to inheritance type [e.g. \Unit (IExamples)]\cr
My***⊗is a syntactic slot, [e.g. \Unit (MyCreator)]\cr
My***-Instances⊗holds value of syntactic slot, \Unit (My***), to be inherited.\cr
⊗This \Unit (My***-Instances) slot appears in \Unit (Typical---) units\cr
All***s⊗refers to extension of {\it ***} slot [e.g. \Unit (AllIsas) extends
\Unit (Isa)]\cr
***Type⊗refers to a datatype, [e.g. \Unit (IntegerType)]\cr
FnFor***⊗the value of this slot is a function, [e.g. \Unit (ForForGetting)]\cr
To***⊗the value of this slot is a function, ...\cr
***Value⊗the value of this slot refers to slot (as opposed to a field)\cr
***Field⊗the value of this slot refers to field (currently not used)\cr
}}$$

\HeadB ⊂C.2: Legend⊃

This \RLL\  Knowledge Base is organized into classes, 
which each contain a set of elements.
Associated with each such class of units is a list
of slots, which are meaningful for elements of this class.
For example, the \Slot (Datatype) slot makes sense for any function; but is
meaningless for, say, people.

Each entry is Section C.3 will describe a class of units;
including relevant features of the members of this class, and the list of slots
defined for each member.
The format used will be:

\ClassEntry <{Class Name} j
{A short description of what the class \Unit (Class Name) represents.}>
\CFact SuperClass@{$\{$Important immediate supersets of this class$\}$}>
\CFact SubClass@{$\{$Important immediate subsets of this class$\}$}>
\hmode{\qquad There are currently {\it n} examples.}\par
\CFact {Direct Examples}@{$\{$Important examples of this class$\}$}>

\SlotsFor {members of Class Name}

\SlotEntry <{slot$↓1$}
{slot$↓1$'s range}
{A short description of \Unit (slot$↓1$).}>
\SFact Inverse@{slot$↓1$'s inverse}>
\SFact HLDefn@{slot$↓1$'s high level definition}>
\SFact ArgList@{arg$↓1$, arg$↓2$, ... arg$↓{M↓1}$}>

{\eightpoint\vbox{\halign{\qquad\qquad{$#$}\cr
\cdot\cr
\cdot\cr
\cdot\cr}}}

\SlotEntry <{slot$↓N$}
{slot$↓N$'s range}
{A short description of \Unit (slot$↓N$).}>
\SFact Inverse@{slot$↓N$'s inverse}>
\SFact HLDefn@{slot$↓N$'s high level definition}>
\SFact ArgList@{arg$↓1$, arg$↓2$, ... arg$↓{M↓N}$}>

We view a slot as a function, which maps a unit onto some value.
The ``\Unit (slot$↓i$)'s range'' field above encodes the space of permissible values
the \Slot (slot$↓i$) of any unit may take.
There are several basic categories of slots,
each with its own type of range.
When {\it Range} is \Unit (FunctionType), it is relevant to know
what \Unit (slot$↓i$)'s \Slot (HighLevelDefinition), and \Slot (ArgList)
is -- otherwise these slots are not even well defined.
Similarly, unless 
{\it Range} is \Unit (UnitType), it is not possible for \Unit (Slot$↓i$) to have an
inverse.

Subsection C.4 will provide an index to the units presented in Section C.3,
using the sequential numbers assigned to each class.
Each class will refer to that number, and each slot will point to the
number associated with the class to which is affiliated.

\HeadB ⊂C.3: Actual Units⊃